<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">

<html><head><title>Components Demo - NewAC</title><link rel="stylesheet" type="text/css" href="../../../../styles/main.css"><script language=JavaScript src="../../../../javascript/main.js"></script><script language=JavaScript src="../../../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>

<!--  Generated by Natural Docs, version 1.4 -->
<!--  http://www.naturaldocs.org  -->

<!-- saved from url=(0026)http://www.naturaldocs.org -->




<div id=Content><div class="CSection"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="Components_Demo"></a>Components Demo</h1><div class=CBody><p>This unit is a demo showing how to build new input and output components for NewAC.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#Components_Demo" >Components Demo</a></td><td class=SDescription>This unit is a demo showing how to build new input and output components for NewAC.</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#Constants" >Constants</a></td><td class=SDescription></td></tr><tr class="SConstant SIndent2 SMarked"><td class=SEntry><a href="#InitialBufferSize" >InitialBufferSize</a></td><td class=SDescription>An Integer equal to $1000 (that&rsquo;s 4096 bytes, if you don&rsquo;t speak hex). </td></tr><tr class="SClass"><td class=SEntry><a href="#TDemoWaveIn" >TDemoWaveIn</a></td><td class=SDescription>A demo input component capable of reading data from raw PCM wav files. </td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#TDemoWaveIn.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#TDemoWaveIn.OpenFile" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">OpenFile</a></td><td class=SDescription>Called by the base methods of TAuFileIn class to open the file. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#TDemoWaveIn.CloseFile" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">CloseFile</a></td><td class=SDescription>Called by the base methods of TAuFileIn class to close the file. </td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#TDemoWaveIn.Create" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">Create</a></td><td class=SDescription>Reimplementing constructor and destructor is optional. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#TDemoWaveIn.GetDataInternal" >GetDataInternal</a></td><td class=SDescription>Used by NewAC to retrieve decoded data. </td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#TDemoWaveIn.Variables" >Variables</a></td><td class=SDescription></td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#TDemoWaveIn.Integer-the_number_of_bytes_to_read,returns_bytes_read" >Integer - the number of bytes to read, returns bytes read.</a></td><td class=SDescription></td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#TDemoWaveIn.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#TDemoWaveIn.SeekInternal" id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">SeekInternal</a></td><td class=SDescription>Performs the file seeking. </td></tr><tr class="SClass"><td class=SEntry><a href="#TDemoWaveOut" >TDemoWaveOut</a></td><td class=SDescription>A demo output component capable of storing data on disk or in a stream in the raw PCM wav format. </td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#TDemoWaveOut.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#TDemoWaveOut.Prepare" id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">Prepare</a></td><td class=SDescription>Performs all the steps required to initialize output.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#TDemoWaveOut.DoOutput" id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')">DoOutput</a></td><td class=SDescription>Called in a loop to perform actual output. </td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#TDemoWaveOut.Done" id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')">Done</a></td><td class=SDescription>Called to do whatever is needed to close the output as well as freeing any associated resources.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#TDemoWaveOut.Compare4" id=link8 onMouseOver="ShowTip(event, 'tt8', 'link8')" onMouseOut="HideTip('tt8')">Compare4</a></td><td class=SDescription>Used internally by <a href="#TDemoWaveOut.ReadRIFFHeader" class=LFunction id=link9 onMouseOver="ShowTip(event, 'tt9', 'link9')" onMouseOut="HideTip('tt9')">ReadRIFFHeader</a>.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#TDemoWaveOut.ReadRIFFHeader" id=link10 onMouseOver="ShowTip(event, 'tt9', 'link10')" onMouseOut="HideTip('tt9')">ReadRIFFHeader</a></td><td class=SDescription>A helper function that parses wav file header and gets audio data parameters. </td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>

<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Constants"></a>Constants</h3></div></div>

<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="InitialBufferSize"></a>InitialBufferSize</h3><div class=CBody><p>An Integer equal to $1000 (that&rsquo;s 4096 bytes, if you don&rsquo;t speak hex).&nbsp; The InitialBufferSize constant holds the initial size of the input buffer.&nbsp; This way we can change the default buffer size easily, without delving into the code.</p></div></div></div>

<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="TDemoWaveIn"></a>TDemoWaveIn</h2><div class=CBody><p>A demo input component capable of reading data from raw PCM wav files.&nbsp; Like most input components, it descends from the TAuFileIn class.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#TDemoWaveIn.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#TDemoWaveIn.OpenFile" id=link11 onMouseOver="ShowTip(event, 'tt1', 'link11')" onMouseOut="HideTip('tt1')">OpenFile</a></td><td class=SDescription>Called by the base methods of TAuFileIn class to open the file. </td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#TDemoWaveIn.CloseFile" id=link12 onMouseOver="ShowTip(event, 'tt2', 'link12')" onMouseOut="HideTip('tt2')">CloseFile</a></td><td class=SDescription>Called by the base methods of TAuFileIn class to close the file. </td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#TDemoWaveIn.Create" id=link13 onMouseOver="ShowTip(event, 'tt3', 'link13')" onMouseOut="HideTip('tt3')">Create</a></td><td class=SDescription>Reimplementing constructor and destructor is optional. </td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#TDemoWaveIn.GetDataInternal" >GetDataInternal</a></td><td class=SDescription>Used by NewAC to retrieve decoded data. </td></tr><tr class="SGroup"><td class=SEntry><a href="#TDemoWaveIn.Variables" >Variables</a></td><td class=SDescription></td></tr><tr class="SVariable SIndent1 SMarked"><td class=SEntry><a href="#TDemoWaveIn.Integer-the_number_of_bytes_to_read,returns_bytes_read" >Integer - the number of bytes to read, returns bytes read.</a></td><td class=SDescription></td></tr><tr class="SGroup"><td class=SEntry><a href="#TDemoWaveIn.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#TDemoWaveIn.SeekInternal" id=link14 onMouseOver="ShowTip(event, 'tt4', 'link14')" onMouseOut="HideTip('tt4')">SeekInternal</a></td><td class=SDescription>Performs the file seeking. </td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>

<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="TDemoWaveIn.Functions"></a>Functions</h3></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="TDemoWaveIn.OpenFile"></a>OpenFile</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>procedure OpenFile; override</td></tr></table></blockquote><p>Called by the base methods of TAuFileIn class to open the file.&nbsp; It should prepare the component for reading data.&nbsp; This method also sets values for several internal and inherited fields.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="TDemoWaveIn.CloseFile"></a>CloseFile</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>procedure CloseFile; override</td></tr></table></blockquote><p>Called by the base methods of TAuFileIn class to close the file.&nbsp; It should clear all resources assosiated with input.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="TDemoWaveIn.Create"></a>Create</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>constructor Create(</td><td class=PParameter nowrap>AOwner:</td><td class=PType nowrap>&nbsp;TComponent</td><td class=PAfterParameters nowrap>); override</td></tr></table></td></tr></table></blockquote><p>Reimplementing constructor and destructor is optional.&nbsp; It depends on the requirements of your component.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="TDemoWaveIn.GetDataInternal"></a>GetDataInternal</h3><div class=CBody><p>Used by NewAC to retrieve decoded data.&nbsp; You should pass the number of bytes you want to read in the  Bytes parameter.&nbsp; This method returns the pointer to the data buffre in the Buffer variable parameter and the number of bytes actually read in the buffer in the Bytes paramter.&nbsp; The buffer pointer must be provided by THIS method and not by the caller.&nbsp; The pointer returned by GetData should be valid until the next call to the method.&nbsp; When the method cannot return any more data it should return nil in the Buffer and 0 in the Bytes parameter.&nbsp; The GetDataInternal method can return less bytes than it is asked to and it should not be considered as an end of file indication.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>Buffer: Pointer</td><td class=CDLDescription>an <b>unassigned</b> pointer to use for the results, GetData initializes the pointer itself.</td></tr></table></div></div></div>

<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="TDemoWaveIn.Variables"></a>Variables</h3></div></div>

<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="TDemoWaveIn.Integer-the_number_of_bytes_to_read,returns_bytes_read"></a>Integer - the number of bytes to read, returns bytes read.</h3></div></div>

<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="TDemoWaveIn.Functions"></a>Functions</h3></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="TDemoWaveIn.SeekInternal"></a>SeekInternal</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function SeekInternal(</td><td class=PParameter nowrap>var SampleNum :</td><td class=PType nowrap>&nbsp;Int64</td><td class=PAfterParameters nowrap>) : Boolean; override</td></tr></table></td></tr></table></blockquote><p>Performs the file seeking.&nbsp; The new position is set in samples, not in bytes, relatively to the beginning of the file.&nbsp; Seek should return True if the input is seekable and False otherwise.&nbsp; This method implementation is optional.&nbsp; If your input component doesn&rsquo;t support seeking.</p><blockquote><pre>function TSomeInputComponent.Seek(SampleNum : Integer) : Boolean;
begin
Result := False;
end;</pre></blockquote><p>In the SampleNum parameter we pass the new position in the input stream in frames (which are called samples ;-) relative to the beginning of the stream.</p></div></div></div>

<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="TDemoWaveOut"></a>TDemoWaveOut</h2><div class=CBody><p>A demo output component capable of storing data on disk or in a stream in the raw PCM wav format.&nbsp; Like most output components, it descends from the <a href="../../../src/ACS_Classes-pas.html#TAuFileOut" class=LClass id=link21 onMouseOver="ShowTip(event, 'tt10', 'link21')" onMouseOut="HideTip('tt10')">TAuFileOut</a> class.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#TDemoWaveOut.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#TDemoWaveOut.Prepare" id=link15 onMouseOver="ShowTip(event, 'tt5', 'link15')" onMouseOut="HideTip('tt5')">Prepare</a></td><td class=SDescription>Performs all the steps required to initialize output.</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#TDemoWaveOut.DoOutput" id=link16 onMouseOver="ShowTip(event, 'tt6', 'link16')" onMouseOut="HideTip('tt6')">DoOutput</a></td><td class=SDescription>Called in a loop to perform actual output. </td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#TDemoWaveOut.Done" id=link17 onMouseOver="ShowTip(event, 'tt7', 'link17')" onMouseOut="HideTip('tt7')">Done</a></td><td class=SDescription>Called to do whatever is needed to close the output as well as freeing any associated resources.</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#TDemoWaveOut.Compare4" id=link18 onMouseOver="ShowTip(event, 'tt8', 'link18')" onMouseOut="HideTip('tt8')">Compare4</a></td><td class=SDescription>Used internally by <a href="#TDemoWaveOut.ReadRIFFHeader" class=LFunction id=link19 onMouseOver="ShowTip(event, 'tt9', 'link19')" onMouseOut="HideTip('tt9')">ReadRIFFHeader</a>.</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#TDemoWaveOut.ReadRIFFHeader" id=link20 onMouseOver="ShowTip(event, 'tt9', 'link20')" onMouseOut="HideTip('tt9')">ReadRIFFHeader</a></td><td class=SDescription>A helper function that parses wav file header and gets audio data parameters. </td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>

<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="TDemoWaveOut.Functions"></a>Functions</h3></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="TDemoWaveOut.Prepare"></a>Prepare</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>procedure Prepare; override</td></tr></table></blockquote><p>Performs all the steps required to initialize output.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="TDemoWaveOut.DoOutput"></a>DoOutput</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function DoOutput(</td><td class=PParameter nowrap>Abort :</td><td class=PType nowrap>&nbsp;Boolean</td><td class=PAfterParameters nowrap>):Boolean; override</td></tr></table></td></tr></table></blockquote><p>Called in a loop to perform actual output.&nbsp; If the Abort parameter is set to True the function must do whatever is needed to stop the output.&nbsp; The function may be called several times with the Abort value set to True.&nbsp; The return value indicartes wheter an output operation should continue.&nbsp; If the function has done its job (because of an end of input file condition, or because the Abort parameter is set to True, or because of some failure, it should return False as a result.&nbsp; Otherwise it returns True.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>Abort: Boolean</td><td class=CDLDescription>set to True in order to stop the output operation</td></tr></table><h4 class=CHeading>Returns</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>Success</td><td class=CDLDescription>Boolean</td></tr></table></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="TDemoWaveOut.Done"></a>Done</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>procedure Done; override</td></tr></table></blockquote><p>Called to do whatever is needed to close the output as well as freeing any associated resources.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="TDemoWaveOut.Compare4"></a>Compare4</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function Compare4(</td><td class=PParameter nowrap>S1,</td><td class=PType nowrap>&nbsp;</td></tr><tr><td></td><td class=PParameter nowrap>S2 :</td><td class=PType nowrap>&nbsp;PChar</td><td class=PAfterParameters nowrap>) : Boolean</td></tr></table></td></tr></table></blockquote><p>Used internally by <a href="#TDemoWaveOut.ReadRIFFHeader" class=LFunction id=link22 onMouseOver="ShowTip(event, 'tt9', 'link22')" onMouseOut="HideTip('tt9')">ReadRIFFHeader</a>.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="TDemoWaveOut.ReadRIFFHeader"></a>ReadRIFFHeader</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function ReadRIFFHeader(</td><td class=PParameter nowrap>Stream :</td><td class=PType nowrap>&nbsp;TStream;</td></tr><tr><td></td><td class=PParameter nowrap>var AudioInfo :</td><td class=PType nowrap>&nbsp;TAudioInfo</td><td class=PAfterParameters nowrap>) : Boolean</td></tr></table></td></tr></table></blockquote><p>A helper function that parses wav file header and gets audio data parameters.&nbsp; This is relevant only to wave file readers, so no further comments are necessary.</p></div></div></div>

</div><!--Content-->


<div id=Footer>Content &copy; 2008-2010 Andrei Borovsky. Design &copy; 2008 Wayne Thursby. <b><u><a href="http://symmetrica.net/newac">Go to the project's main page</a></u></b>&nbsp; &middot;&nbsp; <a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->


<div id=Menu><div class=MTitle>NewAC<div class=MSubTitle>v2.5</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Documentation</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MFile><a href="../../../doc/txt/introduction-txt.html">Quick Introduction to NewAC</a></div></div><div class=MEntry><div class=MFile><a href="../../../doc/txt/about_documentation-txt.html">About the Documentation</a></div></div><div class=MEntry><div class=MFile><a href="../../../doc/txt/cwguide-txt.html">Component Writer&rsquo;s Guide</a></div></div><div class=MEntry><div class=MFile><a href="../../../doc/txt/license-txt.html">License</a></div></div><div class=MEntry><div class=MFile><a href="../../../doc/txt/tips_and_tricks-txt.html">Tips &amp; Tricks</a></div></div><div class=MEntry><div class=MFile><a href="../../../doc/txt/newac-txt.html">About New Audio Components</a></div></div><div class=MEntry><div class=MFile><a href="../../../doc/txt/features-txt.html">NewAC Main Features List</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent2')">Main Units</a><div class=MGroupContent id=MGroupContent2><div class=MEntry><div class=MFile><a href="../../../src/ACS_AudioMix-pas.html">ACS_AudioMix</a></div></div><div class=MEntry><div class=MFile><a href="../../../src/ACS_CDROM-pas.html">ACS_CDROM</a></div></div><div class=MEntry><div class=MFile><a href="../../../src/ACS_Classes-pas.html">ACS_Classes</a></div></div><div class=MEntry><div class=MFile><a href="../../../src/ACS_Converters-pas.html">ACS_Converters</a></div></div><div class=MEntry><div class=MFile><a href="../../../src/ACS_DXAudio-pas.html">ACS_DXAudio</a></div></div><div class=MEntry><div class=MFile><a href="../../../src/ACS_FLAC-pas.html">ACS_FLAC</a></div></div><div class=MEntry><div class=MFile><a href="../../../src/ACS_Filters-pas.html">ACS_Filters</a></div></div><div class=MEntry><div class=MFile><a href="../../../src/ACS_LAME-pas.html">ACS_LAME</a></div></div><div class=MEntry><div class=MFile><a href="../../../src/ACS_MAC-pas.html">ACS_MAC</a></div></div><div class=MEntry><div class=MFile><a href="../../../src/ACS_Misc-pas.html">ACS_Misc</a></div></div><div class=MEntry><div class=MFile><a href="../../../src/ACS_MPC-pas.html">ACS_MPC</a></div></div><div class=MEntry><div class=MFile><a href="../../../src/ACS_OptimFROG-pas.html">ACS_OptimFROG</a></div></div><div class=MEntry><div class=MFile><a href="../../../src/ACS_smpeg-pas.html">ACS_SMPEG</a></div></div><div class=MEntry><div class=MFile><a href="../../../src/ACS_Streams-pas.html">ACS_Streams</a></div></div><div class=MEntry><div class=MFile><a href="../../../src/ACS_TTA-pas.html">ACS_TTA</a></div></div><div class=MEntry><div class=MFile><a href="../../../src/ACS_Tags-pas.html">ACS_Tags</a></div></div><div class=MEntry><div class=MFile><a href="../../../src/ACS_Vorbis-pas.html">ACS_Vorbis</a></div></div><div class=MEntry><div class=MFile><a href="../../../src/ACS_WavPack-pas.html">ACS_WavPack</a></div></div><div class=MEntry><div class=MFile><a href="../../../src/ACS_Wave-pas.html">ACS_Wave</a></div></div><div class=MEntry><div class=MFile><a href="../../../src/ACS_WinMedia-pas.html">ACS_WinMedia</a></div></div><div class=MEntry><div class=MFile><a href="../../../src/AudioDMO-pas.html">AudioDMO</a></div></div><div class=MEntry><div class=MFile><a href="../../../src/AudioPass-pas.html">AudioPass</a></div></div><div class=MEntry><div class=MFile><a href="../../../src/AuSampleRate-pas.html">AuSampleRate</a></div></div><div class=MEntry><div class=MFile><a href="../../../src/AuASIO-pas.html">AuASIO</a></div></div><div class=MEntry><div class=MFile><a href="../../../src/AuSynch-pas.html">AuSynch</a></div></div><div class=MEntry><div class=MFile><a href="../../../src/NewACDTS-pas.html">NewACDTS</a></div></div><div class=MEntry><div class=MFile><a href="../../../src/NewAC_AVI-pas.html">NewAC_AVI</a></div></div><div class=MEntry><div class=MFile><a href="../../../src/NewAC_DSP-pas.html">NewAC_DSP</a></div></div><div class=MEntry><div class=MFile><a href="../../../src/NewACAC3-pas.html">NewACAC3</a></div></div><div class=MEntry><div class=MFile><a href="../../../src/NewACIndicators-pas.html">NewACIndicators</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent3')">Utility Units</a><div class=MGroupContent id=MGroupContent3><div class=MEntry><div class=MFile><a href="../../../src/ACS_Misc-pas.html">ACS_Misc</a></div></div><div class=MEntry><div class=MFile><a href="../../../src/ACS_Procs-pas.html">ACS_Procs</a></div></div><div class=MEntry><div class=MFile><a href="../../../src/acs_reg-pas.html">ACS_Reg</a></div></div><div class=MEntry><div class=MFile><a href="../../../src/ACS_Types-pas.html">ACS_Types</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent4')">Tutorials</a><div class=MGroupContent id=MGroupContent4><div class=MEntry><div class=MFile><a href="../AudioProcessor/Main-pas.html">Audio Processor</a></div></div><div class=MEntry><div class=MFile id=MSelected>Components Demo</div></div><div class=MEntry><div class=MFile><a href="../../Recorders-rippers/Rip'n'listen/Main-pas.html">Rip&rsquo;n&rsquo;Listen Demo</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent5')">Index</a><div class=MGroupContent id=MGroupContent5><div class=MEntry><div class=MIndex><a href="../../../../index/General.html">Everything</a></div></div><div class=MEntry><div class=MIndex><a href="../../../../index/Classes.html">Classes</a></div></div><div class=MEntry><div class=MIndex><a href="../../../../index/Constants.html">Constants</a></div></div><div class=MEntry><div class=MIndex><a href="../../../../index/Functions.html">Functions</a></div></div><div class=MEntry><div class=MIndex><a href="../../../../index/Properties.html">Properties</a></div></div><div class=MEntry><div class=MIndex><a href="../../../../index/Types.html">Types</a></div></div><div class=MEntry><div class=MIndex><a href="../../../../index/Variables.html">Variables</a></div></div></div></div></div><script type="text/javascript"><!--
var searchPanel = new SearchPanel("searchPanel", "HTML", "../../../../search");
--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="Classes">Classes</option><option value="Constants">Constants</option><option value="Functions">Functions</option><option value="Properties">Properties</option><option value="Types">Types</option><option value="Variables">Variables</option></select></div><script language=JavaScript><!--
HideAllBut([4, 5, 3], 6);// --></script></div><!--Menu-->



<!--START_ND_TOOLTIPS-->
<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>procedure OpenFile; override</td></tr></table></blockquote>Called by the base methods of TAuFileIn class to open the file. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>procedure CloseFile; override</td></tr></table></blockquote>Called by the base methods of TAuFileIn class to close the file. </div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>constructor Create(</td><td class=PParameter nowrap>AOwner:</td><td class=PType nowrap>&nbsp;TComponent</td><td class=PAfterParameters nowrap>); override</td></tr></table></td></tr></table></blockquote>Reimplementing constructor and destructor is optional. </div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function SeekInternal(</td><td class=PParameter nowrap>var SampleNum :</td><td class=PType nowrap>&nbsp;Int64</td><td class=PAfterParameters nowrap>) : Boolean; override</td></tr></table></td></tr></table></blockquote>Performs the file seeking. </div></div><div class=CToolTip id="tt5"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>procedure Prepare; override</td></tr></table></blockquote>Performs all the steps required to initialize output.</div></div><div class=CToolTip id="tt6"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function DoOutput(</td><td class=PParameter nowrap>Abort :</td><td class=PType nowrap>&nbsp;Boolean</td><td class=PAfterParameters nowrap>):Boolean; override</td></tr></table></td></tr></table></blockquote>Called in a loop to perform actual output. </div></div><div class=CToolTip id="tt7"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>procedure Done; override</td></tr></table></blockquote>Called to do whatever is needed to close the output as well as freeing any associated resources.</div></div><div class=CToolTip id="tt8"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function Compare4(</td><td class=PParameter nowrap>S1,</td><td class=PType nowrap>&nbsp;</td></tr><tr><td></td><td class=PParameter nowrap>S2 :</td><td class=PType nowrap>&nbsp;PChar</td><td class=PAfterParameters nowrap>) : Boolean</td></tr></table></td></tr></table></blockquote>Used internally by ReadRIFFHeader.</div></div><div class=CToolTip id="tt9"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function ReadRIFFHeader(</td><td class=PParameter nowrap>Stream :</td><td class=PType nowrap>&nbsp;TStream;</td></tr><tr><td></td><td class=PParameter nowrap>var AudioInfo :</td><td class=PType nowrap>&nbsp;TAudioInfo</td><td class=PAfterParameters nowrap>) : Boolean</td></tr></table></td></tr></table></blockquote>A helper function that parses wav file header and gets audio data parameters. </div></div><div class=CToolTip id="tt10"><div class=CClass>A descendant of TAuStreamedOutput to deal with files and streams.</div></div><!--END_ND_TOOLTIPS-->




<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>


<script language=JavaScript><!--
if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>